Clickhouse系列之整合MongoDB数据源

您所在的位置:网站首页 clickhouse 159报错 Clickhouse系列之整合MongoDB数据源

Clickhouse系列之整合MongoDB数据源

2023-07-22 10:55| 来源: 网络整理| 查看: 265

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第15天,点击查看活动详情

前言

在实际应用中,Mongodb是用的挺多的,有可能我们在掘金写的文章就是Mongodb做存储。那我们先来了解下什么是Mongodb?我们先来看看官网给的一个简单介绍:

A record in MongoDB is a document, which is a data structure composed of field and value pairs. MongoDB documents are similar to JSON objects. The values of fields may include other documents, arrays, and arrays of documents. 复制代码

从这个英文介绍我们可以知道:

MongoDB将数据存储为文档,数据结构由键值(key=>value)对组成; MongoDB文档类似于JSON对象。字段值可以包含其他文档、数组和文档数组

当然除了这些,mongodb还有其他的特点:

MongoDB是用C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载情况下,添加更多节点可以确保服务器性能。 MongoDB旨在为web应用程序提供可扩展的高性能数据存储解决方案。

现在我们粗略了解到了Mongodb,现在问题来了,Mongdb这么好,为什么还需要将其数据整合进Clickhouse中呢?

正文

其他数据源整合进Clickhouse,其实是为了业务的分离,Mongodb的存储是属于业务数据,而Clickhouse属于大数据部分,它不应该直接去操作Mongodb,否则在业务层也无法实现低内聚,高耦合的一个效果。

Mongodb引擎简介

MongoDB引擎是只读表引擎,允许从远程MongoDB集合读取数据(SELECT查询)。引擎仅支持非嵌套数据类型。不支持INSERT查询。

建表详情 CREATE TABLE [IF NOT EXISTS] [db.]table_name ( name1 [type1], name2 [type2], ... ) ENGINE = MongoDB(host:port, database, collection, user, password [, options]); 复制代码

引擎参数介绍:

host:port—MongoDB服务器地址。 database—MongoDB数据库名称。 collection-MongoDB集合名称。 user—MongoDB用户。 password—用户密码。 options-MongoDB连接字符串选项(可选参数) 案例实操

a) Mongodb创建数据

# 创建表 db.createCollection('simple_table'); # 插入数据 db.user.insert({_id:5,name:'zhaos'}); 复制代码

b) Clickhouse创建Mongodb引擎表

CREATE TABLE mongo_table ( key UInt64, data String ) ENGINE = MongoDB('mongo1:27017', 'test', 'simple_table', 'testuser', 'clickhouse'); 复制代码

c) 查询测试

SELECT COUNT() FROM mongo_table; 复制代码 总结

本节主要讲解了什么是Mongodb,以及mongo的特点,其次解释了对于为何需要将Mongo和Clickhouse结合的原因,这不仅是业务层面,也是架构层面的考虑。最后我们对于创建Mongodb引擎的参数的一个详解,同时进行了一次实操测试。【欢迎大家留言讨论并关注!!!你们的支持是我创作前进的动力。】



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3